from utils.checker.md5 import Md5Checker
import unittest

class TestMd5Checker(unittest.TestCase):
    def setUp(self):
        self.string1 = "RULL ALL! "
        self.string2 = "Just in mind ..."
        self.string3 = self.string1 + self.string2
        
    def testDigest(self):
        md5_1 = Md5Checker()
        md5_2 = Md5Checker()
        md5_1.update(self.string1)
        md5_2.update(self.string1)
        self.assertEqual(md5_1.digest(), md5_2.digest())
        md5_1.update(self.string2)
        self.assertNotEqual(md5_1.digest(), md5_2.digest())
        self.assertTrue(md5_1.digestSize() > 0)
        md5_3 = Md5Checker()
        md5_3.update(self.string3)
        self.assertEqual(md5_1.digest(), md5_3.digest())
        
    def testGetDigest(self):
        md5 = Md5Checker()
        md5.update(self.string1)
        self.assertEqual(Md5Checker().getDigest(self.string1), md5.digest())
        md5.update(self.string2)
        self.assertEqual(Md5Checker().getDigest(self.string3), md5.digest())
        

suite = unittest.TestLoader().loadTestsFromTestCase(TestMd5Checker)
if __name__ == '__main__':
    unittest.TextTestRunner(verbosity=2).run(suite)


